package com.ezcms.utils;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
import org.joda.time.DateTime;
public class FileStream {

	/*
	 * public static void saveFile(File file, String dir, String fileName) {
	 * String extName = ""; // 保存文件拓展名 String newFileName = ""; // 保存新的文件名
	 * String nowTimeStr = ""; // 保存当前时间 SimpleDateFormat sDateFormat; Random r
	 * = new Random(); File tem = new File(dir); if (!tem.exists()) {
	 * tem.mkdirs(); } // 生成随机文件名：当前年月日时分秒+五位随机数（为了在实际项目中防止文件同名而进行的处理） int
	 * rannum = (int) (r.nextDouble() * (99999 - 10000 + 1)) + 10000; // 获取随机数
	 * sDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); // 时间格式化的格式
	 * nowTimeStr = sDateFormat.format(new Date()); // 当前时间
	 * 
	 * // 获取拓展名 if (fileName.lastIndexOf(".") >= 0) { extName =
	 * fileName.substring(fileName.lastIndexOf(".")); } newFileName = nowTimeStr
	 * + rannum + extName; // 文件重命名后的名字 String reldir = dir + newFileName; //
	 * 文件路径+文件名 file.renameTo(new File(reldir));
	 * 
	 * }
	 */
	/**
	 * 根据年月日创建对应的目录
	 * 
	 * @param root
	 *            根目录
	 * @return
	 * @author ZHF
	 * @version createTime：2011-4-15 下午03:07:06
	 */
	public static String createFolder(String root) {
		DateTime date = new DateTime();
		String year = date.getYear() + "";
		String month = date.toString("MM") + date.toString("dd");
		File tem = new File(root);
		if (!tem.exists()) {
			tem.mkdirs();
		}

		String yearRoot = root + "\\" + year;
		tem = new File(yearRoot);
		if (!tem.exists()) {
			tem.mkdirs();
		}
		String monthRoot = yearRoot + "\\" + month;
		tem = new File(monthRoot);
		if (!tem.exists()) {
			tem.mkdirs();
		}
		return "/" + year + "/" + month;
	}

	public static String getNewName(String name) {
		// 生成随机文件名：当前年月日时分秒+五位随机数（为了在实际项目中防止文件同名而进行的处理）
		int rannum = (int) (new Random().nextDouble() * (99999 - 10000 + 1)) + 10000; // 获取随机数
		SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); // 时间格式化的格式
		String nowTimeStr = sDateFormat.format(new Date()); // 当前时间
		String newName = nowTimeStr + rannum + name;
		return newName;
	}

	/**
	 * 取得文件大小
	 * 
	 * @param file
	 *            文件地址
	 * @return
	 * @author ZHF
	 * @version createTime：2011-4-19 下午04:12:38
	 */
	public static int getFileSize(String file) {
		InputStream is = null;
		int size = 0;
		try {
			is = new FileInputStream(file);
			try {
				size = is.available() / 1024;
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			try {
				is.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return size;

	}

	public static boolean delFile(String fileAddress) {
		File file = new File(fileAddress);
		return file.delete();
	}

	/**
	 * 删除包含相同文件名的文件
	 * 
	 * @param dir
	 *            根目录
	 * @param fileName
	 *            文件名
	 * @author ZHF
	 * @version createTime：2011-4-22 上午10:34:33
	 */
	public static void delSameFile(String dir, String fileName) {
		File file = new File(dir);
		File[] filelist = file.listFiles();
		if (filelist != null) {
			for (File f : filelist) {
				if (f.getName().contains(fileName)) {
					f.delete();
				}
			}
		}
	}

	public static void main(String args[]) {
		// String
		// kk="D:\Projects\Temp\/DWGK/ljrc/2011/0610/9ce77176-9b6f-46d9-9f7c-7b89a47822b3";
		FileStream.delSameFile("D:\\Projects\\UploadFile\\2011\\0420",
				"2011042020291412042.jpg");

		// System.out.println(listfile.length);
	}
}
